var fs = require('fs');
var fsObj = fs.readFileSync('./telPhoneNumber.json');
var phoneNumberObjs = JSON.parse(fsObj);

for (const index in phoneNumberObjs) {
    if (phoneNumberObjs.hasOwnProperty(index)) {
        const element = phoneNumberObjs[index];
        // console.log(index,element.number,":",strictTelPhoneNumber(element.number)?"手机号码":"未知","==",element.des);
        console.log(index,element.number,":",looseTelPhoneNumber(element.number)?"手机号码":"未知","==",element.des);
    }
}

/**
 * 
 * 严格校验,这个正则表达式不建议使用，因为变化的太快，说不定过几天就变了
 * @param {String} phoneNumberStr 电话号码
 * @return {Boolean} 是否正确
 */
function strictTelPhoneNumber(phoneNumberStr){
//    var regex = /^13(4[^9]\d{7}|[^4]\d{8})$/;
//    var regex = /^14[5-9]\d{8}$/;//14[]
//    var regex = /^16([^0389]|([2567]\d{8})|(1(0[^12]\d{6}|\d{7}))|(4[^89]\d{7}))$/;//16[]
//    var regex = /^17[^49]\d{8}$/;//17[]
//    var regex = /^19([^067]|([123589]\d{8})|(4[^1-5]\d{7}))$/;
    var fullRegex = /^(13(4[^9]\d{7}|[^4]\d{8}))|((15|18)\d{9})|(14[5-9]\d{8})|(16([^0389]|([2567]\d{8})|(1(0[^12]\d{6}|\d{7}))|(4[^89]\d{7})))|(17[^49]\d{8})|(19([^067]|([123589]\d{8})|(4[^1-5]\d{7})))$/;
    return fullRegex.test(phoneNumberStr);
}

/**
 * 
 * 推荐使用该正则来判断手机号码，可以通过与示例中的json文件进行结果比较
 * @param {String} phoneNumberStr 
 * @return {Boolean} 是否正确
 */
function looseTelPhoneNumber(phoneNumberStr){
    var regex = /^1(3|5|8|9)\d{9}|4[5-9]\d{8}|6[^0389]\d{8}|7[0-8]\d{8}$/;
    return regex.test(phoneNumberStr);
}